Tom,
Before I move on to the interpreter, I want to "button up" what we have so far.
I have a few questions about CoordMotion functions.
Questions for clarification:
What does SetTPParams do?
This needs to be called whenever Motion Parameters related to the Trajectory Planner have been changed.
What does DownloadDoneSegments do?
Coordinated motion commands such as Straight Feeds and Arcs are initialy added to the Trajectory Planner's segment buffer. As more and more pieces of the path are added the TP can further optimize the motion. Basically as the path lengthens there can be a ripple effect which may effect many earlier segments. At some point the Trajectory Planner can determine segments that can be proven to not be possible to further optimize or change regardless if additional path is added. These segments are flagged as "Done" from a trajectory planning stand point and are free to be downloaded to KFLOP. This routine will attempt to download those segments to KFLOP motion segment buffer.
What is DoRateAdjustments?
The segments in the trajectory planner's buffer have rate (speed) and acceleration limitations. These are computed from constraints of the axes involved and the curvature of motion and such which are in turn a function of the direction of the segment and the angles between segments. In cases where the segments are modified due to other optimizations such as corner rounding and collinear tolerance combining things can change such that the rates need to be re-evaluated. This function performs that task.
What is the diffference between OutputSegment and DoSpecialCommand ?
Besides downloading motion segments into KFLOP's Coordinate Motion Buffer "Special Commands" can be inserted into the buffer to activate I/O bits and other simple operations. This allows those operations to be executed perfectly synchronized with the possibly continuous motion. This is useful with something like Laser scanning where the beam needs to be switched on or off at an exact point.
How is MeasurePointAppendToFile used?
This measures the current x,y,z axes positions and writes it into a disk file. This is used in conjunction with making a geometric correction table.
What does DoKMotionCmd do?
Any Console Script commands can be embedded into GCode as a special form of comment. These commands are sent to KFLOP when they are interpreted. This routine is used to send the command to KFLOP.
What does DoKMotionBufCmd do?
Certain commands can be embedded into GCode which are not executed as they are interpreted. Instead they are included into the motion buffer and executed by KFLOP at the same time as the corresponding motion is executed. This routine is used to insert the Buffered Command into the data stream.
What is the diffference between WaitForSegmentsFinished and
This routine waits until all the Coordinated Motion Segments have been completely finished
WaitForMoveXYZABCFinished ?
This routine waits until a multi axes rapid move is completed
What does FlushSegments do?
This flushes any remaining coordinated motion segment within the Trajectory Planner's segment buffer that have not been downloaded to KFLOP's Coordinated Motion Buffer
What is the differences between
Abort
Abort causes all motion to abruptly stop usually due to something catastrophic like a communication error
Halt
Halt cause motion to stop in a controlled manner. A feed hold is commanded so that the motion decellerates along the intended path. After the system completely stops, the exact point in the Coordinated Motion Buffer where the stop actually happened is uploaded and the GCode Interpreter is rewound to that point.
and ExecutionStop?
Called when the Interpreter is stopping due to either a single step, a halt, or program stop. If some segments have been downloaded and execution is in progress, then we should send whatever is left in the TP which should bring everything to a safe stop similar as if we had a break angle at this point
Sorry for so may questions,
-Brad Murry
Hope this helps
TK